1. Technical Field
The present invention relates generally to an improved data processing system and in particular, a method and apparatus for processing data. Still more particularly, the present invention provides a method, apparatus, and computer instructions for performing device configuration rediscovery.
2. Description of Related Art
In powering on a computer and performing a boot or initial program load (IPL) to an operating system, all of the devices in the computer are identified and initialized as part of this process. These devices may include, for example processor, memory DIMM and IO bridge. These devices contain configuration information or data that is used in identifying and initializing the devices. This device configuration data may include, for example, part numbers, manufacturing codes, revision levels, firmware software levels, and other device specific information. This information is often stored into low cost memories, such as an electrically erasable programmable read-only memory (EEPROM), attached to low cost bus interfaces such as I2C or serial buses accessible via a universal asynchronous receiver transmitter (UART).
The data rates of these low cost interfaces are relatively slow. This situation results in slow read times while accessing a device. Therefore, it takes a long time to read the memory of the entire device. Additionally, since the low cost bus interfaces are simple in nature (I2C bus has 2 signals, clock and data), these interfaces do not handle error correction strategies. The data must be read from the device into the application layer program before an error in the data can be detected. If an error occurs, then that entire data block must be reread into the memory. This recovery process also adds time to getting a good image of the data read from the devices and stored in memory. In larger servers that contain large numbers of resources, minutes may be required to discover all of the devices in the system.
In servers, an embedded microcomputer (service processor) is powered on before the main system processors are booted. This embedded microcomputer is responsible for gathering the configuration data from the devices installed in the computer and assembling that data into a format that can be understood by the main operating system.
In some systems, a discovery process is used to find all devices in the computer. The device configuration data stored on any one device is used to identify what devices can be connected to that device. In computer systems such as these, it is impossible to determine what devices are actually installed in the computer without starting at the first configuration device, processing the device to determine what can be connected to it, reading the configuration data from those devices and continuing processing in this manner until all devices have been found.
Another problem is that operators can remove or install devices into the main system while the computer is in a powered-off state. Therefore, all the devices must have some portion of their configuration data read during the IPL of the main system in order to determine whether a device has been removed from the system, a new device installed in its place, or a new device added to the system where one did not exist before.
Therefore, it would be advantageous to have an improved method, apparatus, and computer instructions for obtaining configuration data on devices.